package com.sg.dto.biz.app.req;

import com.sg.dto.biz.app.common.CycleDto;
import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @desc ImplementOtherExecuteCycleStageHolidayProcessingComReqDto
 * @使用场景
 */
@Data
public class ImplementOtherExecuteCycleStageHolidayProcessingComReqDto
        extends BaseDto
        implements Serializable {

    @ApiModelProperty("周期列表")
    private List<CycleDto> cycleList = new ArrayList<>();

    /**
     * 节假日处理业务场景类型 FILLOUT_SENCE:填报场景 EVALUATE_SENCE:评价场景 FILLOUT_AND_EVALUATE_SENCE:填报评价场景
     */
    @NotNull(message = "节假日处理业务场景类型不能为空")
    @ApiModelProperty("节假日处理业务场景类型")
    private String holidayHandlingSenceType;

    /**
     * 计算开始起点还是结束终点 START_POINT:起点 END_POINT:终点
     */
    @NotNull(message = "计算开始起点还是结束终点不能为空")
    @ApiModelProperty("计算开始起点还是结束终点")
    private String calculateStartPointOrEndPoint;

    /**
     * 因节假日起始点要偏移 TRUE:是 FALSE:否
     */
    @NotNull(message = "因节假日起始点要偏移不能为空")
    @ApiModelProperty("因节假日起始点要偏移")
    private String isMoveBeginPoint;

    /**
     * 数值比较结果 BEFORE:之前 PRESENT:当前 LATER:之后
     */
    @NotNull(message = "数值比较结果不能为空")
    @ApiModelProperty("数值比较结果")
    private String numCompareResult;

    /**
     * 执行周期阶段ID
     */
    @NotNull(message = "执行周期阶段ID不能为空")
    @ApiModelProperty("执行周期阶段ID")
    private String executeCycleStageId;

    /**
     * 周期开始时间
     */
    @ApiModelProperty("上一个时间点周期开始时间")
    private Date cycleStartTime;

    /**
     * 周期结束时间
     */
    @ApiModelProperty("上一个时间点周期结束时间")
    private Date cycleEndTime;

    /**
     * 通用数值字段（整数型）
     */
    @NotNull(message = "接入四个时间点之一不能为空")
    @ApiModelProperty("接入四个时间点之一")
    private Long comNumField;

    /**
     * 通用数值字段1（整数型）
     */
    @ApiModelProperty("填报区间天数")
    private Long comNumField1;

    /**
     * 通用数值字段2（整数型）
     */
    @ApiModelProperty("评价区间天数")
    private Long comNumField2;

}
